/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cz.muni.fi.diplomka.servicelayer.gamelogic.manager;

import cz.fi.muni.diplomka.common.enumeration.UnitType;

/**
 * Interface for manipulating with Units in City
 *
 * @author Jakub Kutil
 */
public interface CityUnitsManager {

    /**
     * Lowers specified Unit count in specified City
     *
     * @param cityId Id of specified City
     * @param unitType Type of specified Unit
     * @param count number to lower
     */
    public void lowerUnitCount(Long cityId, UnitType unitType, int count);

    /**
     * Increases specified Unit count in specified City
     *
     * @param cityId Id of specified City
     * @param unitType Type of specified Unit
     * @param count number to increase
     */
    public void increaseUnitCount(Long cityId, UnitType unitType, int count);

    /**
     * Get count of specified Unit in specified City
     *
     * @param cityId Id of specified City
     * @param unitType Type of specified Unit
     * @return
     */
    public int getUnitCount(Long cityId, UnitType unitType);

    /**
     * Creates starting Units for specified City defined by limits
     *
     * @param cityId Id of specified City
     */
    public void createStartingUnitsForCity(Long cityId);
}
